
```
    _|                                   
   |                           |         
   __|   _` |   __|  _` |   _` |   _ \   
   |    (   |  |    (   |  (   |  (   |  
  _|   \__,_| _|   \__,_| \__,_| \___/   
```

Farа́do (пер. с эсперанто: работа, дело) — это бесплатная система управления проектами с открытым исходным кодом.


## Контент

* `alembic/` — средства миграции базы данных между её версиями
* `deploy/` — инструменты для развёртывания и запуска системы
* `dox/` — диаграммы и документация
* `farado/` — исходные коды системы
* `resources/` — ресурсы системы
  * `resources/logs/` — логи работы системы
  * `resources/public/` — стили, javascript библиотеки и изображения доступные клиенту
      при работе системы без авторизации
  * `resources/uploads/` — файлы вложений
  * `resources/views/` — шаблоны представлений пользовательского интерфейса
  * `resources/database.sqlite` — файл SQLite базы данных
  * `resources/logger.cfg` — файл конфигурации средств логирования
* `utests/` — файлы модульных тестов
* `alembic.ini` — настройки средства миграции базы данных между её версиями
* `AUTHORS` — информация об авторах системы
* `default_data_creator.py` — средство наполнения БД данными по умолчанию
* `farado_main.py` — основной файл запуска системы
* `README.md` — общее описание
* `RELEASES.md` — описание выпусков системы
* `requirements.txt` — перечень применяемых python-библиотек
* `run_utests.py` — средство выполнения модульных тестов


## Требования

* python 3.9
* SQLAlchemy 1.4.27
* Jinja2 3.0.1
* CherryPy 18.6.1
* alembic 1.7.7

Установите python и запустите `pip install -r requirements.txt`.


## Дополнительно

### Как запустить Farado

Запустите `python .\farado_main.py` из корня репозитория.

### Как создать БД с данными по умолчанию

При первом запуске Farado будет автоматически создана пустая БД.
Место расположения: `resources/database.sqlite`.

Для создания и наполнения БД с данными по умолчанию, как то: учётной записью
администратора, простым рабочим процессом, базовым типом запроса, примером
проекта и запросов, воспользуйтесь командой: `python .\default_data_creator.py`
из корня репозитория.

### Как обновить Farado до новой версии не потеряв данные

В качестве средств обновления БД применяется библиотека `alembic`.

Для обновления решения до новой версии необходимо выполнить следующие шаги:

1. Остановить работу Farado, если система запущена.
1. Создать резервную копию обновляемой системы.
1. Разместить в нужной папке новую версию системы.
1. Скопировать в папку с новой версией системы данные из старой:
   * `resources/database.sqlite`
   * `resources/uploads/`
   * `resources/logs/`
1. Запустить средство миграции БД `alembic upgrade head` из корня репозитория.
1. Запустить работу Farado.

### Распространение Farado

Это свободное ПО, распространение которого на определённых условиях всячески
приветствуется; для более подробной информации смотрите файл `LICENSE`.

По вопросам развития системы просим обращаться на `dolu.bl` плюшка `ya.ru`.
